import re

# 需求
# 定义一个函数，用于判断输入的手机号是否合法
# 并判断它的运营商

# 思路步骤：
# 1.首先了解三大运营商的号段分布
# 2.获取用户输入内容
# 3.判断输入是否是一个手机号
# 4.判断该手机号段的运营商
# 5.输出

def phone():
    n = input("请输入一个手机号：")
    if re.match(r'1[3,4,5,7,8]\d{9}',n):
        print("您输入的的手机号码是：\n",n)
        #中国联通：
        # 130，131，132，155，156，185，186，145，176
        if re.match(r'13[0,1,2]\d{8}',n) or \
            re.match(r"15[5,6]\d{8}",n) or \
            re.match(r"18[5,6]",n) or \
            re.match(r"145\d{8}",n) or \
            re.match(r"176\d{8}",n):
            print("该号码属于：中国联通")
        #中国移动
        # 134, 135 , 136, 137, 138, 139, 147, 150, 151,
        # 152, 157, 158, 159, 178, 182, 183, 184, 187, 188；
        elif re.match(r"13[4,5,6,7,8,9]\d{8}",n) or \
            re.match(r"147\d{8}|178\d{8}",n) or \
            re.match(r"15[0,1,2,7,8,9]\d{8}",n) or \
            re.match(r"18[2,3,4,7,8]\d{8}",n):
            print("该号码属于：中国移动")
        else:
            #中国电信
            #133,153,189
            print("该号码属于：中国电信")
    else:
        print("请输入正确的手机号")

if __name__ == '__main__':
    phone()